trade_refund_query (退款查询)

查询退款信息,在支付宝上查询退款的时候没有退款标识就查询不到实际退款都有哪些,所以为了安全财务部门必须要手动对账才可以。

//加载相应的Library
$type = 'weixin';
if($type == 'weixin'){
    $this->load->library('WxPay'); 
    $payment = $this->wxpay;
}else if($type == 'alipay'){
    $this->load->library('AliPay'); 
    $payment = $this->alipay;
}

// 设置订单号
$trade_no = '2017101621001004340289220052';  
$payment->set_trade_no($trade_no);

// $order_no = 'jtorder001';    //使用商家订单号查询
// $payment->set_trade_no(null,$order_no);

$result = $payment->trade_refund_query();

//查询指定退款标识的退款记录
$result2 = $payment->trade_refund_query('TK003');


// *****************************************************
// *** 当前项目当中以上代码简化成这样使用,根据订单号自动加载 ***
// *****************************************************
$this->load->helper('payment');
$payment = load_payment_by_order_no($order_id);
$result = $payment->trade_refund_query();

请求参数

字段名 参数 类型 是否必填 描述 示例值
退款标识 $out_refund_no String(32) 默认为null, 有退款标识的时候只查询一条退款信息 TK003

响应参数

字段名 参数 类型 是否必填 描述
执行结果状态 result_status Bool 必填 true: SUCCESS,PROCESSINGfalse : 其他状态都是
状态码 result_code String(32) 必填 执行结果状态码(详见底部状态码)
状态描述 status_msg String(255) 必填 执行结果状态描述
已退款单数 refund_count INT 必填 -
详细描述 status_sub_msg String(255) 执行状态详细描述
退款形式 refund_type String(32) 特殊 全额退款:ALL, 部分退款:PARTIAL (is_suretrue的时候返回)
订单总金额 total_amount DECIMAL(10,2) 必填(成功时) 订单总金额
确保信息正确 is_sure Bool 必填(成功时) 保证信息是否正确(只有支付宝返回false的情况)
已退款总金额 refund_amount DECIMAL(10,2) 必填(成功时) 订单已退款的总金额
子退款总金额 sub_refund_amount DECIMAL(10,2) 必填(成功时) 子退款信息里所有退款金额的合计
子退款信息 sub_refund Array 必填(成功时) 订单已退款的总金额
原数据 request_data Array 支付平台回调的信息

确保信息不正确(false)的情况主要是不知道退款标识的时候。 订单没有关闭的情况下,没有退款交易的情况都会返回false

子退款订单响应参数

字段名 参数 类型 是否必填 描述
状态码 result_code String(32) 必填 执行结果状态码(详见底部子订单退款结果状态码)
退款标识 out_refund_no String(64) 必填 支付平台的交易号
退款金额 refund_fee DECIMAL(10,2) 必填 订单总金额
原数据 request_data Array 支付平台回调的信息

执行结果状态码

状态码 描述
SUCCESS 查询成功
NO_REFUND 没有退款交易
REFUND_FAIL 退款失败 (全部子订单都失败就属于退款失败)
PROCESSING 退款处理中 (只要有一个处理中的订单都属于处理中)
NOTFOUND 交易不存在
ERROR 发生错误

子订单退款结果状态码

状态码 描述
SUCCESS 查询成功
PROCESSING 退款处理中
CLOSE 退款关闭